Toggle navigation
Ivan's Wiki
Wiki Home
(current)
Submit
Index
Towards Optimisation-Safe Systems: Analysing the Impact of UB
Paper by the son of Boris Zeldovich and the grandson of Yakob Zeldovich
Stack - static checker that precisely identifies unstable code
Unstable (Optimisation unstable) code is the one that breaks at higher levels of optimisation
Different versions of compilers can discard different types of undefined behaviour due to evolution in optimisation strategies
Unstable Code:
A code fragment is unstable if it is not legal for a dialect with well-defined semantics
Two-phase scheme:
Run optimiser without taking advantage of undefined behaviour (optimisations under C*)
Run the optimiser again with UP optimisations enabled
If extra code is optimised in the second phase, we assume that the code is unstable